# -*- coding: UTF-8 -*- #
"""
-------真正的勇士， 敢于直面惨淡的Warning、 敢于正视淋漓的Error-----
@author : 贾鹏博
@file : 0、charles 使用.py
@time : 2022/7/2 8:30
"""

"""
一  安装：
    1.官网
    2.学院网盘
二 基础配置：
    1.确认抓包端口 - 默认 8888
    2.勾选支持 http2.0
    3.勾选支持远程代理 -> 抓取移动设备的端口数据
    4.抓电脑端的数据 Proxy - Windows Proxy
三 证书安装与配置
    1.电脑证书安装  Http - SSL Proxying - Root certificate
    2.设置 SSL    a: Proxy - SSL Proxying Setings   b: Include 中添加规则(host、port置空)
    3.移动端配置代理   
        a: 保证移动设备和电脑在同一 Wifi   
        b: 查看电脑 ip 地址，确认 charles 抓包端口   
        c: 移动设备配置网络代理(设置 - 网络 - 手动代理：电脑 ip 和 charles 端口：默认8888)
        d: Help -> SSl Proxying -> inatall charles Root certificate on a mobile dexice or remote browser
    4.安装证书 ：默认浏览器，输入 chls.pro/ssl
    5.弹出连接警告弹窗，点击 Allow
四 基础使用
    1.抓包查看接口数据  a: Overview(接口的总体信息 - 请求方法、url、响应时间)  b: content(上半部分 - 请求相关信息，下半部分 - 响应相关信息)
    2.过滤请求 a: Filter   b: focus(其他的所有接口放在 other 目录)
    3.重发      a: 简单重发     b: 进阶重发（简单的压力测试） - 重发数量、并发数量、重发间隔时间(右键接口，选择 Repeat Vdvanced : 10次)
    4.修改请求  修改请求方法、请求 url、请i去参数、请求头信息
    5.断点    鼠标右键 -> Breakpoints
        a: 请求断点 - 在请求发出之后，服务端收到请求之前进行拦截(修改请求相关的参数)    
        b: 响应断点 - 在服务端发出响应之后，客户端收到响应之前进行拦截(修改响应的相关数据)
五 弱网测试   Proxy - Throttle Setings
    a: 基础弱网 - 点击小乌龟图标     
    b: 弱网配置 - Proxy - Throttle Setings(可以指定弱网生效的域名)  
    c: 选择不同的预设方案  
    d: 自定义网络参数 ： 1、带宽：下载速度、上行速度   2、带宽可用率  3、网络延迟时间  4、最大传输单位 5 、可靠性 6、稳定性 7、不稳定质量范围
六 mock测试(moke测试)    
    1.Rewrite  
        a、Tools - Rewrite
        b、创建重写规则：1 配置接口匹配规则  2 创建内容修改规则
    2.MapLocal
        a、准备本地数据
        b、选择要 mock 的接口，鼠标右键点击  Map Local  
            一、配置要 mock 的接口的匹配信息
            二、配置目标的本地数据地址
        c、修改或关闭 Map Local，Tools - Map Local  - 1：双击对应的规则进入修改界面  2：勾选 enable
    3.MapRemote (重定向 -> 修改环境：线上环境切换测试环境)
        a、选择要 mock 的接口，鼠标右键点击  Map Remote  
            一、配置要 mock 的接口的匹配信息
            二、配置目标的本地数据地址
        b、修改或关闭 Map Remote，Tools - Map Remote  - 1：双击对应的规则进入修改界面  2：勾选 enable

"""
